
union.o:     file format elf64-littleaarch64


Disassembly of section .text:

0000000000000000 <main>:
    }bit;
    unsigned char b8;
}dac_power_ctrl;

int main()
{
   0:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
   4:	910003fd 	mov	x29, sp
	union test tt;

	printf("tt sizeof = %d\n\n", sizeof(union test));	// 8
   8:	90000000 	adrp	x0, 0 <main>
   c:	91000000 	add	x0, x0, #0x0
  10:	d2800101 	mov	x1, #0x8                   	// #8
  14:	94000000 	bl	0 <printf>
	
	tt.a = 'a';
  18:	52800c20 	mov	w0, #0x61                  	// #97
  1c:	390063a0 	strb	w0, [x29, #24]
	printf("%c\n", tt.a);			// a
  20:	394063a0 	ldrb	w0, [x29, #24]
  24:	2a0003e1 	mov	w1, w0
  28:	90000000 	adrp	x0, 0 <main>
  2c:	91000000 	add	x0, x0, #0x0
  30:	94000000 	bl	0 <printf>
	printf("%c\n", tt.b);			// a
  34:	b9401ba1 	ldr	w1, [x29, #24]
  38:	90000000 	adrp	x0, 0 <main>
  3c:	91000000 	add	x0, x0, #0x0
  40:	94000000 	bl	0 <printf>
	printf("%c\n", (int)tt.c);		// a
  44:	f9400fa0 	ldr	x0, [x29, #24]
  48:	2a0003e1 	mov	w1, w0
  4c:	90000000 	adrp	x0, 0 <main>
  50:	91000000 	add	x0, x0, #0x0
  54:	94000000 	bl	0 <printf>
	printf("union = %c\n\n", tt);	// a
  58:	90000000 	adrp	x0, 0 <main>
  5c:	91000000 	add	x0, x0, #0x0
  60:	f9400fa1 	ldr	x1, [x29, #24]
  64:	94000000 	bl	0 <printf>
	
	tt.b = 100;
  68:	52800c80 	mov	w0, #0x64                  	// #100
  6c:	b9001ba0 	str	w0, [x29, #24]
	printf("%d\n", tt.a);			// 100
  70:	394063a0 	ldrb	w0, [x29, #24]
  74:	2a0003e1 	mov	w1, w0
  78:	90000000 	adrp	x0, 0 <main>
  7c:	91000000 	add	x0, x0, #0x0
  80:	94000000 	bl	0 <printf>
	printf("%d\n", tt.b);			// 100
  84:	b9401ba1 	ldr	w1, [x29, #24]
  88:	90000000 	adrp	x0, 0 <main>
  8c:	91000000 	add	x0, x0, #0x0
  90:	94000000 	bl	0 <printf>
	printf("%d\n", (int)tt.c);		// 100
  94:	f9400fa0 	ldr	x0, [x29, #24]
  98:	2a0003e1 	mov	w1, w0
  9c:	90000000 	adrp	x0, 0 <main>
  a0:	91000000 	add	x0, x0, #0x0
  a4:	94000000 	bl	0 <printf>
	printf("union = %d\n\n", tt);	// 100
  a8:	90000000 	adrp	x0, 0 <main>
  ac:	91000000 	add	x0, x0, #0x0
  b0:	f9400fa1 	ldr	x1, [x29, #24]
  b4:	94000000 	bl	0 <printf>
	
	tt.a = 'a';
  b8:	52800c20 	mov	w0, #0x61                  	// #97
  bc:	390063a0 	strb	w0, [x29, #24]
	printf("%c\n", tt.a);			// a
  c0:	394063a0 	ldrb	w0, [x29, #24]
  c4:	2a0003e1 	mov	w1, w0
  c8:	90000000 	adrp	x0, 0 <main>
  cc:	91000000 	add	x0, x0, #0x0
  d0:	94000000 	bl	0 <printf>
	printf("%c\n", tt.b);			// a
  d4:	b9401ba1 	ldr	w1, [x29, #24]
  d8:	90000000 	adrp	x0, 0 <main>
  dc:	91000000 	add	x0, x0, #0x0
  e0:	94000000 	bl	0 <printf>
	printf("%c\n", (int)tt.c);		// a
  e4:	f9400fa0 	ldr	x0, [x29, #24]
  e8:	2a0003e1 	mov	w1, w0
  ec:	90000000 	adrp	x0, 0 <main>
  f0:	91000000 	add	x0, x0, #0x0
  f4:	94000000 	bl	0 <printf>
	printf("union = %c\n\n", tt);	// a
  f8:	90000000 	adrp	x0, 0 <main>
  fc:	91000000 	add	x0, x0, #0x0
 100:	f9400fa1 	ldr	x1, [x29, #24]
 104:	94000000 	bl	0 <printf>
	
	tt.c = 20000;
 108:	d289c400 	mov	x0, #0x4e20                	// #20000
 10c:	f9000fa0 	str	x0, [x29, #24]
	printf("%d\n", (char)tt.a);		// 32
 110:	394063a0 	ldrb	w0, [x29, #24]
 114:	2a0003e1 	mov	w1, w0
 118:	90000000 	adrp	x0, 0 <main>
 11c:	91000000 	add	x0, x0, #0x0
 120:	94000000 	bl	0 <printf>
	printf("%d\n", (int)tt.b);		// 20000
 124:	b9401ba1 	ldr	w1, [x29, #24]
 128:	90000000 	adrp	x0, 0 <main>
 12c:	91000000 	add	x0, x0, #0x0
 130:	94000000 	bl	0 <printf>
	printf("%ld\n", tt.c);			// 20000
 134:	f9400fa1 	ldr	x1, [x29, #24]
 138:	90000000 	adrp	x0, 0 <main>
 13c:	91000000 	add	x0, x0, #0x0
 140:	94000000 	bl	0 <printf>
	printf("union = %ld\n\n", tt);	// 20000
 144:	90000000 	adrp	x0, 0 <main>
 148:	91000000 	add	x0, x0, #0x0
 14c:	f9400fa1 	ldr	x1, [x29, #24]
 150:	94000000 	bl	0 <printf>
	
	tt.c = 3000;
 154:	d2817700 	mov	x0, #0xbb8                 	// #3000
 158:	f9000fa0 	str	x0, [x29, #24]
	printf("%d\n", tt.c);			// 3000
 15c:	f9400fa1 	ldr	x1, [x29, #24]
 160:	90000000 	adrp	x0, 0 <main>
 164:	91000000 	add	x0, x0, #0x0
 168:	94000000 	bl	0 <printf>
	tt.a = 'b';
 16c:	52800c40 	mov	w0, #0x62                  	// #98
 170:	390063a0 	strb	w0, [x29, #24]
	printf("%c\n", tt.a);			// b
 174:	394063a0 	ldrb	w0, [x29, #24]
 178:	2a0003e1 	mov	w1, w0
 17c:	90000000 	adrp	x0, 0 <main>
 180:	91000000 	add	x0, x0, #0x0
 184:	94000000 	bl	0 <printf>
	printf("%c\n", tt.c);			// b
 188:	f9400fa1 	ldr	x1, [x29, #24]
 18c:	90000000 	adrp	x0, 0 <main>
 190:	91000000 	add	x0, x0, #0x0
 194:	94000000 	bl	0 <printf>
	printf("%d\n", tt.c);			// 2914
 198:	f9400fa1 	ldr	x1, [x29, #24]
 19c:	90000000 	adrp	x0, 0 <main>
 1a0:	91000000 	add	x0, x0, #0x0
 1a4:	94000000 	bl	0 <printf>

	printf("union size : %d\n", sizeof(dac_power_ctrl));	// 1
 1a8:	90000000 	adrp	x0, 0 <main>
 1ac:	91000000 	add	x0, x0, #0x0
 1b0:	d2800021 	mov	x1, #0x1                   	// #1
 1b4:	94000000 	bl	0 <printf>
	
	return 0;
 1b8:	52800000 	mov	w0, #0x0                   	// #0
}
 1bc:	a8c27bfd 	ldp	x29, x30, [sp], #32
 1c0:	d65f03c0 	ret
